package com.demo.controller;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.demo.entity.FunMap;
import com.google.gson.Gson;

import lombok.extern.slf4j.Slf4j;
/**
 * Map传参，不能使用js自带的Map对象传参
 * 需定义对象（用{}定义）
 * --------------------使用js自带的Map传参---------------
 * 前端发送的参数将不会携带map（表现为：如果只有map一个参数，那么传参为空，如果有其他参数，则提交除了map外的其他参数）
 * --------------------使用对象进行传参------------------
 * 前端能正常发送，后台如果要接收数据，需使用对象封装的map接收
 * ----------------------------------------------------
 * @date 2020年1月3日
 */
@Controller
@Slf4j
public class MapController{
	public static final Gson GSON=new Gson();//Gson对象
	/**
	 * 直接传Map
	 * (报错)
	 * @param Map
	 */
	@PostMapping("/map/self")
	@ResponseBody
	public void map1(Map<String,String> map){
		log.info("map1:" +GSON.toJson(map));
	}
	/**
	 * 使用对象封装List
	 * (正确接收)
	 * @param list
	 */
	@PostMapping("/map/obj")
	@ResponseBody
	public void map2(FunMap funMap){
		log.info("map2:" +GSON.toJson(funMap));
	}
}
